[アップデート]Amazon RDS Blue/Green Deploymentsがストレージボリュームの縮小をサポートしました

[アップデート]Amazon RDS Blue/Green Deploymentsがストレージボリュームの縮小をサポートしました

Clock Icon2024.11.26

こんにちは、岩城です。

re:Invent 2024の開催間近なので、連日様々なサービスアップデートが公開されています。
先週になりますが、Amazon RDS Blue/Green Deplymentsによるストレージボリュームの縮小をサポートしたので試してみたいと思います。

https://aws.amazon.com/jp/about-aws/whats-new/2024/11/amazon-rds-blue-green-deployments-storage-volume-shrink/

これまでのRDSのストレージボリュームを縮小する方法は?

従来は、こちらのre:Postに紹介されている様に新しいDBインスタンスを作成した上で以下の対応が必要でした。

  • データベースエンジンが標準サポートするダンプ機能とその復元方法を使用する
  • AWS Database Migration Service(DMS)を使用する

そして、いずれも大なり小なりダウンタイムが発生します。

なお、Amazon RDS Blue/Green Deploymentsにおいても、Blue環境からGreen環境に切り替える際に書き込みが切断されるため、他案に比べてダウンタイムを少なくできても、0にすることはできません。

対象のデータベースエンジンは?

Amazon RDS Blue/Green Deplymentsによるストレージボリュームの縮小をサポートするデータベースエンジンは以下のとおりです。

  • Amazon RDS for PostgreSQL メジャーバージョン12以上
  • Amazon RDS fot MySQL メジャーバージョン5.7以上
  • Amazon RDS fot MariaDB メジャーバージョン10.4以上

このため、以下のデータベースは現在サポートされていません。

  • Amazon RDS for Oracle
  • Amazon RDS for Microsoft SQL Server
  • Amazon RDS for IBM Db2
  • Amazon Aurora MySQL Compatible
  • Amazon Aurora PostgreSQL Compatible

ドキュメントを確認してみる

英語ドキュメントと日本語ドキュメントを比較すると以下のセクションが英語ドキュメントにだけ反映されていました(2024.11.26時点)。

Modify storage and performance settings

ストレージ容量の縮小以外にも言及する記載がありましたので、合わせて要点をリストアップしておきます。

  • Green環境のストレージタイプを変更できる
    • 汎用SSD(gp2, gp3)、プロビジョンドIOPS SSD(io1, io2)
  • Green環境のストレージ容量を増減できる
    • ストレージの削減は、Green環境のストレージ容量がBlue環境の20%以上多い場合のみ可能
    • Blue環境のストレージタイプがマグネティックの場合、Green環境のストレージタイプを汎用SSDもしくはプロビジョンド IOPS SSDの必要がある

試してみた

下図のようにストレージボリュームを50GBで作成したDBインスタンスから、Blue/Green Deplymentsを使用して、ストレージボリュームを20GBに変更します。

20241125-rds-shrink-012

ネットワーク周りやRDSインスタンスの作成は、本題ではないので省略します。

まずは、Blue/Green Deploymentsを作成します。

20241125-rds-shrink-001

これまでにはなかったストレージの設定項目が増えていました。

ここではストレージ割当を50GBから20GBに変更しました。

20241125-rds-shrink-010

ストレージ割当が変更されていることを確認して作成します。

20241125-rds-shrink-003

Blue/Green Deploymentsの作成には時間が掛かるので作成完了まで待ちます。

Blueに該当するDBインスタンスのイベントログを確認すると、1時間弱掛かっていました。

20241125-rds-shrink-005

Green環境に該当するDBインスタンス作成直後のストレージボリュームの容量は50GBでしたが、

20241125-rds-shrink-004

しばらく経つと20GBに変更されていました。作成直後から20GBで作成されるものと思っていましたが違うようです。

20241125-rds-shrink-006

Blue/Green Deploymentsの作成が完了しましたら、最後にBlue環境からGreen環境に切り替えます。

適当にBlue/Green Deploymentsを設定していたため、エンジンバージョンが上がっていることに気付きました。

今回はストレージボリュームの縮小を検証することが目的なので影響ありませんが、Green環境の何がBlue環境から分かっているのかをきちんと確認しましょう。

スクリーンショットを撮り忘れましたが、Green環境への切り替えを行う際、エンジンバージョン変わるけど切り替えて問題ないか?といった警告文が出ましたのでシステム的に気付く機会がありました。

20241125-rds-shrink-008

以上で検証完了です。

おわりに

Blue/Green Deplymentsを利用すれば、マネジメントコンソールをクリックするだけで簡単に縮小できることが分かりました。

割とRDSのストレージボリュームを縮小したいと聞くことがあるので、縮小する方法の選択肢が1つ増えたので良いですね。

現在利用しているDBインスタンスに影響せずに、ストレージボリュームを縮小したGreen環境を作れます。

切り替えさえしなければ、Green環境を削除するだけで元に戻せるので、比較的試しやすいのではないでしょうか。

本エントリが、どなたかのお役に立てれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.